約 3,331,345 件
https://w.atwiki.jp/charolles/pages/40.html
データベース 練習問題05 解答例1 SELECT 商品番号, 商品名 FROM 製造元 WHERE 商品番号 IN ( SELECT 商品番号 FROM 秋葉原支店 WHERE 販売価格 =100,000円 UNION SELECT 商品番号 FROM 日本橋支店 WHERE 販売価格 =100,000円 AND 商品名 IN ( SELECT 商品名 FROM 商品分類 WHERE 商品分類="Computer") AND 製造元 IN ( SELECT 製造元 FROM 製造元 WHERE 製造元="GELL"); 解答例2 SELECT DISTINCT 製造元.商品名, 製造元.商品番号 FROM 製造元, 商品分類, 秋葉原支店, 日本橋支店 WHERE 製造元.商品名=商品分類.商品名 AND 製造元.製造元="GELL" AND 商品分類.商品分類="Computer" AND ((製造元.商品番号=秋葉原支店.商品番号 AND 秋葉原支店.販売価格 =100,000円) OR (製造元.商品番号=日本橋支店.商品番号 AND 日本橋支店.販売価格 =100,000円); 演習問題06-1 解答例1 SELECT 商品分類.商品分類, MIN(秋葉原支店.販売価格) FROM 製造元, 商品分類, 秋葉原支店 WHERE 製造元.商品番号=秋葉原支店.商品番号 AND製造元.商品名=商品分類.商品名 AND秋葉原支店.在庫 =5 GROUP BY 商品分類.商品分類; 解答例2 SELECT 商品分類 AS 商品分類, MIN(販売価格) FROM 商品分類 WHERE 商品名 IN ( SELECT 商品名 FROM 製造元 WHERE商品番号IN( SELECT 商品番号 FROM 秋葉原支店 WHERE 在庫数 =5)) GROUP BY 商品分類; 演習問題06-2 解答例1 SELECT 商品分類.商品分類 FROM 製造元, 商品分類, 秋葉原支店 WHERE 製造元.商品番号=秋葉原支店.商品番号 AND 製造元.商品名=商品分類.商品名 AND 秋葉原支店.在庫 =5 GROUP BY 商品分類.商品分類 HAVING MIN(秋葉原支店.販売価格) =50,000; 解答例2 SELECT 商品分類 AS 商品分類, MIN(販売価格) AS 最低販売価格 FROM 商品分類, 秋葉原支店 WHERE 商品名 IN ( SELECT 商品名 FROM 製造元 WHERE商品番号IN( SELECT 商品番号 FROM 秋葉原支店 WHERE 在庫数 =5)) GROUP BY 商品分類 HAVING MIN(販売価格) =50,000円 練習問題07-1 解答例1 CREATE VIEW 商品分類毎最低価格(商品分類, 最低販売価格) AS SELECT 商品分類.商品分類, MIN(秋葉原支店.販売価格) FROM 製造元, 商品分類, 秋葉原支店 WHERE 製造元.商品番号=秋葉原支店.商品番号 AND 製造元.商品名=商品分類.商品名 AND 秋葉原支店.在庫 =5 GROUP BY 商品分類.商品分類; 解答例2 CREATE VIEW 商品分類毎最低価格(商品分類, 最低販売価格) AS SELECT 商品分類.商品分類 AS 商品分類 MIN(秋葉原支店, 販売価格) AS 最低販売価格 FROM 秋葉原支店, 製造元.商品分類 WHERE 製造元. 練習問題07-2 解答例 SELECT 商品分類 FROM 商品分類毎最低価格 WHERE 最低販売価格 =50,000;
https://w.atwiki.jp/famicomall/pages/1479.html
FC制覇データベース あ か さ た な は ま や ら わ い き し ち に ひ み り う く す つ ぬ ふ む ゆ る え け せ て ね へ め れ お こ そ と の ほ も よ ろ 画像がたくさん貼ってあり重いです。ご注意ください。 FCソフトのデータベースとしても使えるかとは思いますが基本的にはFC制覇のデータベースを目的として作ってます。 画像は配信時のものではありません。 開始時間・所要時間は 周辺さんのデータ を参考にさせていただきました。 次のゲームは進行中に表示されるタイトル画面を採用しました。No.152 Mからの挑戦状 No.155 エリュシオン No.354 殺意の階層 No.376 サンサーラ・ナーガ No.907 ファイナルファンタジー No.910 ファイナルファンタジーⅢ No.1037 北海道連鎖殺人オホーツクに消ゆ No.1116 ムーンボールマジック(DISK) 次のゲームはあえて進行中のものを採用しませんでした。No.47 アルカノイドⅡ No.273 孔雀王 前編・後編のあるソフトの後編は基本的に最初に表示される画面を採用してますが次のゲームはそれぞれの前編の進行中で表示されるタイトル画面を採用しました。No.924 ファミコン探偵倶楽部 (後編)(DISK) No.926 ファミコン探偵倶楽部Ⅱ (後編)(DISK)
https://w.atwiki.jp/backrooms-a/pages/13.html
組織データベース backrooms内の放浪者は、生活していく内、石器時代の人類と同じく、特定のコミュニティを作成することが生存に有利だと考えた。 その結果、現在、Backroomsには大小数々の組織が存在しており、会社や国家、集落は勿論のこと、宗教まで存在している。 以下はそれらの組織に関するデータベースである。 大規模組織 千人単位のコロニーが各レベルにあるような組織。 放浪者にとっては最も頼りになるだろう。 B.R.G. Backrooms Republican Government、略称BRG。 Backrooms共和政府は、恐らくBackrooms内でも有数の大規模グループである。 中規模組織 数百人単位のコロニーが存在する組織。 少なからぬ影響力と軍事力を所持していて、一部のレベルでは大規模組織よりも影響力が高いこともある。 小規模組織 人数は少ないが、複数のレベルに進出している組織。 立場も多種多様で、少人数ならではの利点を持っている。
https://w.atwiki.jp/dragon109/pages/36.html
JDBCドライバの取得(MySQL用) ※2009.03.01時点でのバージョンは5.1.7 以下の順でダウンロードする。 ここにアクセス http //dev.mysql.com/downloads/ Drivers and ConnectorsのMySQL Connector/J — for connecting to MySQL from Javaの「MySQL Connector/J 5.1」 Source and Binaries (zip)の「Pick a mirror」 New Usersの「Proceed」 画面下部の「No thanks, just take me to the downloads!」 好きなミラーサイトの「HTTP」 適当な場所にダウンロード インストール ダウンロードしたファイルを解凍(mysql-connector-java-5.1.7.zip) 解凍したフォルダ内のmysql-connector-java-5.1.7-bin.jarをTomcatをインストールしたフォルダ\common\lib\にコピーする。 JDBCドライバのロード MySQLの場合は次のように行う。 try { Class.forName("com.mysql.jdbc.Driver").newInstance(); }catch (ClassNotFoundException e){ }catch (Exception e){ } URL http //localhost 8080/database/databasetest アプリケーション配置場所 c \servlet-sample\database\ web.xmlファイル c \servlet-sample\database\WEB-INF\web.xml コンテキストファイル C \Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\database.xml データベースへの接続と切断 データベースへの接続を確立するには「DriverManager」クラスで用意されている"getConnection"メソッドを使う。 引数には接続するデータベースを表すURLと接続用のユーザー名とパスワードを指定する。 MySQLの場合、URLの形式は次のようになる。 jdbc mysql //(サーバ名)/(データベース名) 例えばローカルホストにある「jdbctestdb」というデータベースに接続する場合は次のようになる。 jdbc mysql //localhost/jdbctestdb 実際の使用例 Connection conn = null; String url = "jdbc mysql //localhost/jdbctestdb"; String user = "testuser"; String password = "testpass"; try{ conn = DriverManager.getConnection(url, user, password); // データベースに対する処理 }catch (SQLException e){ } データベースの切断 いったん接続した後に切断する場合には、接続の際に取得したConnectionインターフェースのオブジェクトに対して、"close"メソッドを使う。 "close"メソッドは何か問題が発生した際に忘れずに行うためにも、次のように"finally"節を使って記述する。 Connection conn = null; String url = "jdbc mysql //localhost/jdbctestdb"; String user = "testuser"; String password = "testpass"; try{ conn = DriverManager.getConnection(url, user, password); // データベースに対する処理 }catch (SQLException e){ // 例外処理 }finally{ try{ if (conn != null){ conn.close(); } }catch (SQLException e){ // 例外処理 } } データベースの用意 データベース名は「jdbctestdb」とする。 MySQLへ接続する: mysql -u root -p パスワード応答 データベースを作成する: create database jdbctestdb; テスト用データベースに接続する: use jdbctestdb テーブルを作成する: create table kabukatable(code int, company varchar(32), primary key(code) ); ユーザの追加、権限設定: grant select,insert,update,delete on jdbctestdb.* to testuser @ localhost identified by testpass ; データを追加する: 下記参照 データを確認する: select * from kabukatable; データを追加する ※コマンドプロンプトからINSERTしようとした場合、「ERROR 1366 (HY000) Incorrect string value \x83r\x83b\x83N... for column com pany at row 1」というエラーが発生し追加できない。これはどうやらMySQLインストール時に文字コードをutf-8にしたからの模様。正しい対処かどうかはわからないが、以下のSETコマンドを実行することでINSERTができるようになる。別セッションでSELECTしたりする場合は、毎回このSETを実行しないと文字化けする。 SET character_set_client = sjis; SET character_set_connection = utf8; SET character_set_results = sjis; insert into kabukatable values (3048, ビックカメラ ), (4689, ヤフー ), (4755, RAKUTEN ), (9984, SoftBank ); データベース接続テスト URL http //localhost 8080/database/databasetest1 データの取得(SELECT) ステートメントを作成する Connection」インターフェースで定義されている"createStatement"メソッドを使う。 conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); 問い合わせの実行 「Statement」インターフェースで用意されている"executeQuery"メソッドを使う。 conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM kabukatable"; ResultSet rs = stmt.executeQuery(sql); 結果の取得 カーソルを動かすには「ResultSet」インターフェースで定義されている"next"メソッドを使う。 conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM kabukatable"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ /* 行からデータを取得 */ int code = rs.getInt("code"); String company = rs.getString("company"); } データ型毎の値取得メソッド一覧(一部) boolean getBoolean(String columnName) byte getByte(String columnName) Date getDate(String columnName) double getDouble(String columnName) int getInt(String columnName) long getLong(String columnName) Timestamp getTimestamp(String columnName) リソースの開放 使わなくなった「ResultSet」オブジェクトは"close"メソッドを使ってリソースを開放する。 また、「Statement」オブジェクトもに"close"メソッドを使ってリソースを開放する。 rs.close(); stmt.close(); URL http //localhost 8080/database/databasetest2 データの更新(UPDATE) 「Statement」インターフェースで用意されている"executeUpdate"メソッドを使う。 conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "update kabukatable set company= 楽天(株) where code = 4755"; int num = stmt.executeUpdate(sql); URL http //localhost 8080/database/databasetest3 データの追加(INSERT) 「Statement」インターフェースで用意されている"executeUpdate"メソッドを使う。 conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "insert into kabukatable (code, company) values (2491, バリューコマース )"; int num = stmt.executeUpdate(sql); データの削除(DELETE) 「Statement」インターフェースで用意されている"executeUpdate"メソッドを使う。 conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "delete from kabukatable where id = 4755"; int num = stmt.executeUpdate(sql); prepareStatementの使用 「Connection」インターフェースで定義されている"prepareStatement"メソッドを使う。 パラメータとして後から指定する部分には、実際の値を記述する替わりに「?」を記述したSQL文を作成し、そのSQLを元にプリペアドステートメントを作成する。 String sql = "insert into kabukatable (code, company) values (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); この例では実際に挿入する値を記述箇所に「?」を使っている。2箇所使っているので、後からパラメータを2つ指定する必要がある。 パラメータへ値の設定 「PreparedStatement」インターフェースで用意されている「setInt」メソッドを使う。 パラメータの数だけメソッドを実行する。パラメータはSQL文中に記述された「?」を先頭から順番に1,2,3、・・・と順番に番号が割り当てられる。1番目のメソッドにはパラメータの番号を指定し、2番目の引数にパラメータに設定したい値を記述する。 String sql = "insert into kabukatable (code, company) values (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 4755); pstmt.setString(2, "楽天(株)"); パラメータに値を設定するには設定する値のデータ型毎に別々のメソッドが用意されてる。(一部) メソッド 説明 void setString(int parameterIndex, String x) String 値に設定します。 void setInt(int parameterIndex, int x) int 値に設定します。 void setLong(int parameterIndex, long x) long 値に設定します。 void setByte(int parameterIndex, byte x) バイト配列に設定します。 void setFloat(int parameterIndex, float x) float 値に設定します。 void setDouble(int parameterIndex, double x) double 値に設定します。 void setDate(int parameterIndex, Date x) java.sql.Date 値に設定します。 void setTime(int parameterIndex, Time x) java.sql.Time 値に設定します。 void setBoolean(int parameterIndex, boolean x) boolean 値に設定します。 void setTimestamp(int parameterIndex, Timestamp x) java.sql.Timestamp 値に設定します。 プリペアドステートメントの実行 「PreparedStatement」インターフェースにはSELECTなどのクエリーの結果を取得する場合に使う「executeQuery」メソッドと、INSERTやUPDATEなどの結果が返されない場合に使う「executeUpdate」メソッドがある。この使い方は「Statement」の場合と同じ。 conn = DriverManager.getConnection(url, user, password); String sql = "insert into kabukatable (code, company) values (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 4755); pstmt.setString(2, "楽天(株)"); int num = pstmt.executeUpdate(); パラメータのクリア プリペアドステートメントを複数回続けて実行する場合、値が変更されないパラメータについては改めて設定する必要はない。 次の例では1番目のパラメータは変更が無く、2回目に実行する時には2番目のパラメータだけを設定する。 String sql = "insert into kabukatable (basho, company) values (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, "東証"); pstmt.setString(2, "ドコモ"); int num = pstmt.executeUpdate(); pstmt.setString(2, "KDDI"); num = pstmt.executeUpdate(); 現在設定されているパラメータを全て一度クリアしたい場合には「PreparedStatement」インターフェースで用意されている「clearParameters」メソッドを使う。 URL http //localhost 8080/database/databasetest6
https://w.atwiki.jp/tamorintech/pages/17.html
KVS(Key-Value Store)ということば。(2012/2/5 旧Wikiから移行)参考サイト memcachedとは(2012/2/5 旧wikiから移行)memcachedのクライアントについて。 参考サイト 共有ロックと占有ロック(2012/2/4) 楽観的排他と悲観的排他(2012/2/4 旧wikiから移行)思ったこと(2012/2/4) 参考サイト KVS(Key-Value Store)ということば。(2012/2/5 旧Wikiから移行) 連想配列やMapと同様にキーと値のペアからなるシンプルなデータモデルに基づくデータストア。 分散KVSとRDBの比較 KVS RDB 分散化のコスト ◎ × 負荷分散 ◎ △ 高可用性 ◎ △ 複雑な検索や集計 △ ◎ トランザクション △ ◎ 参考サイト @IT - もう1つの、DBのかたち、分散Key-Valueストアとは memcachedとは(2012/2/5 旧wikiから移行) さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる技術(ソフトウェア)。mixi、はてな、facebook、…などで利用されている。 memcachedは高性能な分散メモリキャッシュサーバーであり、データベースへの問い合わせ結果を一時的にキャッシュすることでWebアプリケーションの高速化を実現する。 memcachedは「分散」キャッシュサーバーだが、分散に関しての機能はサーバー側に備わっていない。全てクライアント側の実装に依存する。 memcachedのクライアントについて。 クライアントライブラリにはさまざまな言語の実装がある。Perl、PHP、Python、Ruby、C#、C/C++、Lua Javaはないんか… Perlのmemcachedクライアントは以下のようなモジュールがある。Cache Memcached Cache Memcached Fast Cache Memcached libmemcached Cache Memcachedの利用データを保存するメソッドadd - 同じキーのデータがストレージ上にない場合のみ値を保存 replace - 同じキーのデータがストレージ上にあった場合のみ値を保存 set - どんな場合でも値を保存 データを取得するメソッドget - キーを指定して値を取得する get_multi - 複数のキーを指定して非同期で値を取得する。getをループで処理するよりも数十倍高速にデータを取得できる。 データを削除するメソッドdelete - キーを指定して値を削除する。2つめの引数にblock時間(秒)を指定することで、一定時間、同じキーで新しい値を保存できないようにすることができる。ただし、setメソッドを利用すると関係なくデータを保存することができる。 参考サイト gihyo.jp - memcachedを知り尽くす (memcachedの構成イメージや、ソースサンプルが参考になる!) 共有ロックと占有ロック(2012/2/4) 下の表なんかはよく見るものだけど、SQLではどう違うかがようやく分かったので記録しておく。 ある資源に既に掛けられているロックとそれに対してこれから掛けようとするロックの関係は以下の通り。 共有ロック 占有ロック 共有ロック できる できない 占有ロック できない できない 共有ロックは以下のSQLで実現できる。(これをずっと知らなかった。。) SELECT ... FROM ... LOCK IN SHARE MODE; 占有ロックは以下のSQLで実現できる。 SELECT ... FROM ... FOR UPDATE; 楽観的排他と悲観的排他(2012/2/4 旧wikiから移行) 一言でいうと、その違いは「ロックをとるかとらないか」のようだ。 楽観的排他とは考え方「自分が操作している情報は、他の人が操作する可能性は少ない」という視点に基づいている。 あるプロセスがデータを更新しようとしている間に、他のプロセスからも処理が可能だが、後から更新しようとしたプロセスは失敗する。 複数のユーザーが同じデータを見る(Readする)ことはできるが、それが最新の情報かどうかは(アプリ側から)通知されるまでわからない。 実現方法排他チェック用のカラムの値が、参照時と更新時で同じかどうかを検証する。(値が異なっていれば他のプロセスによって更新されていることになる。) 排他チェック用カラムには、更新日時(タイムスタンプ)やバージョン番号を使うのが一般的。 悲観的排他とは考え方あるプロセスのデータを更新が終了するまで、(参照を含めて)他のプロセスは処理ができない。 あるユーザーが参照・更新処理を行っている間は、他のユーザーは参照も更新もできない。 後のプロセスは、先のプロセスが終了するまで待たされることになる。 実現方法更新対象の行を参照(SELECT)した時点でロックをかける。 思ったこと(2012/2/4) 悲観的排他では排他されるプロセスは「参照もできない」とあるが、どうゆうこと?ロックの種類に占有ロックを使うことが前提になっている? 参考サイト @IT - 悲観もあれば楽観もある「トランザクション」の常識 http //pcdn.int21.co.jp/pcdn/vb/noriolib/vbmag/9904/lock/ System.Exit - 悲観的ロックと楽観的ロック
https://w.atwiki.jp/kaberobo/pages/6.html
■データベース試験
https://w.atwiki.jp/nba-dreamteam/pages/19.html
選手カードのデータベースです。(随時更新)
https://w.atwiki.jp/setechdiv/pages/51.html
今までさんざんあやふやにしてきたデータベース操作について・・・ DAOとADO どちらもデータベースにアクセスするためのメソッド等を備えたオブジェクト。 違いは、 DAOは、テーブル・クエリの作成、データベース自体の新規作成も可能 →Accessでは、こちらをよく使う ADOは、それができない(発展的機能のADOXでは可能) ただし、ネットワーク上のAccessファイル、SQLServer、Oracle等に簡易にアクセスできる →Web系開発に向いている DAO まずはオブジェクトを変数として宣言する必要があります。 Dim DB As DAO.Databese 次に、どのデータベースを参照するか、設定します。 Set DB = CurrentDB このCurrentDBとは何か。 これは、「ウィンドウで現在開かれているデータベースのオブジェクト変数」を返すメソッドです。 「ウィンドウで現在開かれているデータベースのオブジェクト変数」は、 DBEngine.Workspaces(0).Databases(0) だったりそうじゃなかったり、だそうです(詳細はまた調べよう) ともかく、 Dim DB As DAO.Databese Set DB = CurrentDB これで現在のデータベースに接続できるわけです。 .
https://w.atwiki.jp/vipdemom/pages/176.html
誰得データベース 武器ステータスの早見表として活用する。(未完成) ノーマル(英字無し)→[A]→[AA]→[S]の順にグレードアップ グレードアップすると基礎能力が増加する。 また[A]以上の装備では、Lv10以降になると攻撃力増加のオプションが、 さらにLv30以降になるとクリティカル増加のオプションが追加される。 また、装備のバインドと表記されているモノは、 一度装備してしまうと他者と交換することが出来なくなる。 さらに、PvP値によってネームカラーが変わっている際に フィールド上でPK行為を受け、倒されてしまった場合 ペナルティが発生し、装備しているものが剥がれてドロップしてしまうことがあるが バインド装備においてはドロップすることがない。 グレードアップ時のオプション(追加特典) 装備レベル [A] [AA] [S] Lv10 攻撃+5 攻撃+10 攻撃+15 Lv20 攻撃+9 攻撃+18 攻撃+27 Lv30 攻撃+15 クリティカル+50 攻撃+30 クリティカル+60 攻撃+45 クリティカル+99 Lv40 攻撃+20 クリティカル+65 攻撃+40 クリティカル+78 攻撃+60 クリティカル+116 Lv50 攻撃+27 クリティカル+80 攻撃+55 クリティカル+96 攻撃+82 クリティカル+133 Lv60 攻撃+35 クリティカル+95 攻撃+70 クリティカル+114 攻撃+105 クリティカル+150 Lv65 攻撃+42 クリティカル+110 攻撃+84 クリティカル+132 攻撃+126 クリティカル+167 Lv70 攻撃+51 クリティカル+125 攻撃+102 クリティカル+150 攻撃+153 クリティカル+184 Lv75 攻撃+62 クリティカル+140 攻撃+122 クリティカル+168 攻撃+180 クリティカル+201 Lv80 攻撃+74 クリティカル+155 攻撃+141 クリティカル+186 攻撃+207 クリティカル+218 職業別武器データベース 槍 棒 斧 弓 拳 刀 扇 剣 鉤
https://w.atwiki.jp/javadsge/pages/8192.html
(1)表 役者のデータベース 役者コード (2)プログラム コード作成 リンク名 リンク名 (3)グラフ (4)出 Audience Rating TV (5)メモ (6)作業記録 1月2日 データ追加 -